package org.xinghai.sql.main.generator.domain;

import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import lombok.Data;

import java.util.Date;

/**
 * &#064;TableName  table_columns
 */
@TableName(value = "table_columns")
@Data
public class TableColumns {
    /**
     * 列ID
     */
    @TableId(type = IdType.AUTO)
    private Integer columnId;

    /**
     * 关联的表ID（对应database_tables.table_id）
     */
    private Integer tableId;

    /**
     * 列名
     */
    private String columnName;

    /**
     * 数据类型
     */
    private String dataType;

    /**
     * 能否为空 0否 1是 数据库默认为0
     */
    private Integer isNullable; // 数据库类型为VARCHAR，修改为String

    /**
     * 是否为主键 0否 1是 数据库默认为0
     */
    private Integer isPrimaryKey;

    /**
     * 是否为外键 0否 1是
     */
    private Integer isForeignKey;

    /**
     * 若为外键，关联的目标表ID（对应database_tables.table_id）
     */
    private Integer foreignTableId;
    /**
     * 外键目标表名
     * */
    private String foreignTableName;

    /**
     * 外键目标列名
     */
    private String foreignColumnName;

    /**
     * 外键关联的列ID (table_columns.column_id)
     */
    private Integer foreignColumnId;

    /**
     * 描述
     */
    private String description;

    /**
     * 外键约束的业务含义说明
     */
    private String foreignKeyDescription;

    /**
     * 创建时间
     */
    private Date createdAt;

    /**
     * java类型
     */
    private String javaType;

    /**
     * 表名
     */
    private String tableName;

    /**
     * 列在表中的位置序号（如1表示第一列）
     */
    private Integer columnPosition;
}